package com.shu.mmall.service;

import com.shu.mmall.common.Result;
import com.shu.mmall.pojo.User;

/**
 * @author shujinhao
 */
public interface IUserService {
    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return 登录结果
     */
    Result<User> login(String username, String password);

    /**
     * 注册
     * @param user 用户对象
     * @return 结果
     */
    Result register(User user);

    /**
     * 校验参数
     * @param str 内容
     * @param type 类型
     * @return 结果
     */
    Result<String> checkValid(String str,String type);

    /**
     * 找回密码的问题
     * @param username 用户名
     * @return 问题
     */
    Result selectQuestion(String username);

    /**
     * 校验问题答案
     * @param username 用户名
     * @param question 问题
     * @param answer 答案
     * @return 结果
     */
    Result<String> checkAnswer(String username,String question,String answer);

    /**
     * 重置密码
     * @param username 用户名
     * @param passwordNew 新密码
     * @param forgetToken token
     * @return 结果
     */
    Result<String> forgetRestPassword(String username,String passwordNew,String forgetToken);

    /**
     * 重置在线用户密码
     * @param passwordOld 旧密码
     * @param passwordNew 新密码
     * @param user 用户id
     * @return 结果
     */
    Result<String> resetPassword(String passwordOld,String passwordNew,User user);

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 结果
     */
    Result<User> updateUserInfo(User user);

    /**
     * 查询用户信息
     * @param userId 用户id
     * @return 结果
     */
    Result<User> getInformation(Integer userId);

    /**
     * 校验是否是管理员
     * @param user 用户
     * @return 结果
     */
    Result checkAdminRole(User user);
}
